/*******************************************************************************
版权声明: Copyright(C) HT-Tech Co., Ltd. 2020-2021. All rights reserved.
文件名称: httun.h
文件描述: 隧道操作定义
创 建 者: 陈位仅
创建时间: 2024年11月13日
修改历史:
1. 2024年11月13日   陈位仅      创建文件 
*******************************************************************************/
#ifndef _HTTUN__15882503819
#define _HTTUN__15882503819

// 虚拟网卡设备
#define TUN_DEV "/dev/net/tun"

//*************************************************************
// 接口名: httun_create
// 返回值: 0 成功, -1 失败
// 参  数: pcfg:终端配置信息 [in]
//         pInfo:SSL隧道信息 [in]
// 描  述: 创建虚拟网卡
//*************************************************************
int httun_create(IN ht_cfg_t *pcfg, OUT htssl_info_t *pInfo);

//*************************************************************
// 接口名: httun_setup
// 返回值: 0 成功, -1 失败
// 参  数: pcfg:终端配置信息 [in]
//         addr:IP地址 [in]
//         mask:掩码 [in]
// 描  述: 配置虚拟网卡IP和掩码
//*************************************************************
int httun_setup(IN ht_cfg_t *pcfg, IN char *addr, IN char *mask);

//*************************************************************
// 接口名: httun_recv
// 返回值: 0 成功, -1 失败
// 参  数: pInfo:SSL隧道信息 [in]
//         buf:数据接收BUF [out]
//         len:数据接收BUF长度 [in]
// 描  述: 从虚拟网卡接收数据
//*************************************************************
int httun_recv(IN htssl_info_t *pInfo, OUT void *buf, IN int len);

//*************************************************************
// 接口名: httun_send
// 返回值: 0 成功, -1 失败
// 参  数: pInfo:SSL隧道信息 [in]
//         buf:数据发送BUF [in]
//         len:数据发送BUF长度 [in]
// 描  述: 发送数据到虚拟网卡
//*************************************************************
int httun_send(IN htssl_info_t *pInfo, IN void *buf, IN int len);

//*************************************************************
// 接口名: httun_close
// 返回值: 0 成功, -1 失败
// 参  数: pInfo:SSL隧道信息 [in]
// 描  述: 关闭虚拟网卡
//*************************************************************
void httun_close(IN htssl_info_t *pInfo);

//*************************************************************
// 接口名: httun_route
// 返回值: 0 成功, -1 失败
// 参  数: pcfg:终端配置信息 [in]
//         ip:路由IP地址 [in]
// 描  述: 配置系统路由
//*************************************************************
int httun_route(IN ht_cfg_t *pcfg, IN char *ip);
#endif // _HTTUN__15882503819
